const mongoose = require('mongoose');
mongoose.connect("mongodb://localhost/playground",{useUnifiedTopology: true,useNewUrlParser: true})
  .then(()=>{console.log('数据库连接成功')})
  .catch(err=>{console.log('数据库连接失败')})

//创建集合规则
let userSchema = new mongoose.Schema({
  name:{
    type: String,
    required: [true,'自定义提示信息']
  },
  age:Number,
  sex:String
})

//使用规则创建集合
const users = mongoose.model('users',userSchema);
//查询用户集合中的所有文档
// users.find().then(result=>{console.log(result)})
//通过_id字段查找文档
// users.find({_id:'5e8afc713c39fa3eccf4b9ae'}).then(result=>{console.log(result)})

//findOne方法返回一条文档，默认返回当前集合中的第一条文档
// users.findOne({name:'小美'}).then(result=>{console.log(result)})

//匹配大于小于
// users.find({age:{$gt:15,$lt:25}}).then(result=>{console.log(result)})

//匹配包含
// users.find({sex:{$in:['女']}}).then(result=>{console.log(result)})

//选择要查询的字段
// users.find().select('name sex').then(result=>{console.log(result)})

//将数据按照年龄升序进行排序
// users.find().sort('age').then(result=>{console.log(result)})

//将数据按照年龄降序进行排序
// users.find().sort('-age').then(result=>{console.log(result)})

//skip跳过多少条数据 limit限制查询数量
// users.find().skip('1').limit(2).then(result=>{console.log(result)})

//查找到一条文档并删除
//返回删除的文档
//如何查询条件匹配多个文档，那么将会删除第一个匹配的文档
// users.findOneAndDelete({_id:'5e8afc713c39fa3eccf4b9ae'}).then(result=>{console.log(result)})

//删除多条文档
// users.deleteMany({}).then(result=>{console.log(result)})

//更新单个
users.updateOne({name:"张三"},{name:'张三三'}).then(result=>{console.log(result)})

//更新多个
users.updateMany({查询条件},{要更改的值}).then(result=>{console.log(result)})